package day09;
/*此类用于测试继承中构造方法的使用
1.子类再创建对象时，默认先调用父类的构造方法
2.原因是子类构造函数中的第一行默认存在super();--表示调用父类的无参构造
3.当父类没有无参构造时。可以通过super（参数）调用弗雷德其他韩餐构造
子类必须调用一个父类的构造函数，不管是无参还是有参，选一个
4。构造方法不可以被继承！因为语法的原因：要求构造方法的名字必须是本类类名
 不能在子类中出现一个父类名字的构造方法*/
public class Test04 {
    public static void main(String[] args) {
        //5创建子类，验证构造方法
        Son2 s = new Son2();    //创建对象的时候，一定会执行当前类的构造方法
        //这里要注意创建上面对象，实际子类中有一个从父类继承的无参构造，如果没写默认无参构造，所以子类其实有一个super();
    }


}

//class Father{   这个行不通因为Test03里面存在了Father
//创建名为Father2的父类
class Father2{
    //2。创建父类无参构造方法
    public Father2(){
        System.out.println("我是父类的无参构造");
    }
    public Father2(String s){
        System.out.println("我是父类的含参构造");
    }
}

//创建一个子类Son2继承Father2
class Son2 extends Father2{
    //定义子类的无参构造
    public Son2(){
        //super();
        //super("tedu")
        System.out.println("我是子类的无参构造");
    }
}